package com.ourteam.product.model.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 IRKT 2017
 * Auto Generate Date : 2017-11-17 11:01:11
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductModelActionDAOQueryBean extends BaseQueryBean {
    public ProductModelActionDAOQueryBean() {
        super();
    }

    public ProductModelActionDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductModelActionDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.Id, "id");
        }
    }

    public void addObjectIdSelectProperty() {
        addObjectIdSelectProperty("objectId");
    }

    public void addObjectIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.ObjectId, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.ObjectId, "objectId");
        }
    }

    public void addPropertyIdSelectProperty() {
        addPropertyIdSelectProperty("propertyId");
    }

    public void addPropertyIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.PropertyId, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.PropertyId, "propertyId");
        }
    }

    public void addActionSelectProperty() {
        addActionSelectProperty("action");
    }

    public void addActionSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.Action, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.Action, "action");
        }
    }

    public void addOperationSelectProperty() {
        addOperationSelectProperty("operation");
    }

    public void addOperationSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.Operation, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.Operation, "operation");
        }
    }

    public void addPropertyValueSelectProperty() {
        addPropertyValueSelectProperty("propertyValue");
    }

    public void addPropertyValueSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.PropertyValue, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.PropertyValue,
                "propertyValue");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.Remarks, "remarks");
        }
    }

    public void addPropertyNameSelectProperty() {
        addPropertyNameSelectProperty("propertyName");
    }

    public void addPropertyNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.PropertyName, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.PropertyName,
                "propertyName");
        }
    }

    public void addPropertyDataTypeSelectProperty() {
        addPropertyDataTypeSelectProperty("propertyDataType");
    }

    public void addPropertyDataTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelActionDAO.PropertyDataType, aAlias);
        } else {
            addSelectProperty(IProductModelActionDAO.PropertyDataType,
                "propertyDataType");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addObjectIdSelectProperty();

        addPropertyIdSelectProperty();

        addActionSelectProperty();

        addOperationSelectProperty();

        addPropertyValueSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addPropertyNameSelectProperty();

        addPropertyDataTypeSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductModelActionDAOQueryBean> {
        protected Criteria(ProductModelActionDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductModelActionDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductModelActionDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductModelActionDAO.Id + " is not null AND " +
                IProductModelActionDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.Id + " is null OR " +
                IProductModelActionDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Id + " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.Id + " is null OR " +
                IProductModelActionDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Id + " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Id + " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Id + " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Id + " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Id + " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Id + " in", values, "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Id + " not in", values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Id + " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Id + " not in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductModelActionDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelActionDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelActionDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelActionDAO.Id + " not between", value1,
                value2, "id");

            return this;
        }

        public Criteria andObjectIdIsNull() {
            addCriterion(IProductModelActionDAO.ObjectId + " is null");

            return this;
        }

        public Criteria andObjectIdIsNotNull() {
            addCriterion(IProductModelActionDAO.ObjectId + " is not null");

            return this;
        }

        public Criteria andObjectIdIsNotEmpty() {
            addCriterion(IProductModelActionDAO.ObjectId + " is not null AND " +
                IProductModelActionDAO.ObjectId + " <> ''");

            return this;
        }

        public Criteria andObjectIdIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.ObjectId +
                " is null OR " + IProductModelActionDAO.ObjectId + " = '')");

            return this;
        }

        public Criteria andObjectIdEqualTo(long value) {
            return andObjectIdEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.ObjectId + " = ", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.ObjectId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.ObjectId + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andObjectIdNotEqualTo(long value) {
            return andObjectIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.ObjectId + " <>", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdNotEqualToOrIsNull(long value) {
            return andObjectIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andObjectIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.ObjectId + " is null OR " +
                IProductModelActionDAO.ObjectId + " <>", value, "objectId");

            return this;
        }

        public Criteria andObjectIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.ObjectId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.ObjectId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdGreaterThan(long value) {
            return andObjectIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andObjectIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.ObjectId + " >", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.ObjectId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.ObjectId + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(long value) {
            return andObjectIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.ObjectId + " >=", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.ObjectId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.ObjectId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdLessThan(long value) {
            return andObjectIdLessThan(Long.valueOf(value));
        }

        public Criteria andObjectIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.ObjectId + " <", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.ObjectId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.ObjectId + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualTo(long value) {
            return andObjectIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andObjectIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.ObjectId + " <=", value,
                "objectId");

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.ObjectId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andObjectIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.ObjectId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdIn(long[] values) {
            if (values.length == 1) {
                return andObjectIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelActionDAO.ObjectId + " in", values,
                    "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(long[] values) {
            if (values.length == 1) {
                return andObjectIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelActionDAO.ObjectId + " not in",
                    values, "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andObjectIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.ObjectId + " in", values,
                    "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andObjectIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.ObjectId + " not in",
                    values, "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andObjectIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.ObjectId + " in",
                    Arrays.asList(values), "objectId");

                return this;
            }
        }

        public Criteria andObjectIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andObjectIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.ObjectId + " not in",
                    Arrays.asList(values), "objectId");

                return this;
            }
        }

        public Criteria andObjectIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.ObjectId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.ObjectId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andObjectIdBetween(long value1, long value2) {
            addCriterion(IProductModelActionDAO.ObjectId + " between", value1,
                value2, "objectId");

            return this;
        }

        public Criteria andObjectIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelActionDAO.ObjectId + " between", value1,
                value2, "objectId");

            return this;
        }

        public Criteria andObjectIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelActionDAO.ObjectId + " not between",
                value1, value2, "objectId");

            return this;
        }

        public Criteria andObjectIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelActionDAO.ObjectId + " not between",
                value1, value2, "objectId");

            return this;
        }

        public Criteria andPropertyIdIsNull() {
            addCriterion(IProductModelActionDAO.PropertyId + " is null");

            return this;
        }

        public Criteria andPropertyIdIsNotNull() {
            addCriterion(IProductModelActionDAO.PropertyId + " is not null");

            return this;
        }

        public Criteria andPropertyIdIsNotEmpty() {
            addCriterion(IProductModelActionDAO.PropertyId +
                " is not null AND " + IProductModelActionDAO.PropertyId +
                " <> ''");

            return this;
        }

        public Criteria andPropertyIdIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.PropertyId +
                " is null OR " + IProductModelActionDAO.PropertyId + " = '')");

            return this;
        }

        public Criteria andPropertyIdEqualTo(long value) {
            return andPropertyIdEqualTo(Long.valueOf(value));
        }

        public Criteria andPropertyIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.PropertyId + " = ", value,
                "propertyId");

            return this;
        }

        public Criteria andPropertyIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyIdNotEqualTo(long value) {
            return andPropertyIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andPropertyIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.PropertyId + " <>", value,
                "propertyId");

            return this;
        }

        public Criteria andPropertyIdNotEqualToOrIsNull(long value) {
            return andPropertyIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andPropertyIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.PropertyId + " is null OR " +
                IProductModelActionDAO.PropertyId + " <>", value, "propertyId");

            return this;
        }

        public Criteria andPropertyIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyIdGreaterThan(long value) {
            return andPropertyIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andPropertyIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.PropertyId + " >", value,
                "propertyId");

            return this;
        }

        public Criteria andPropertyIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyIdGreaterThanOrEqualTo(long value) {
            return andPropertyIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andPropertyIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.PropertyId + " >=", value,
                "propertyId");

            return this;
        }

        public Criteria andPropertyIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyIdLessThan(long value) {
            return andPropertyIdLessThan(Long.valueOf(value));
        }

        public Criteria andPropertyIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.PropertyId + " <", value,
                "propertyId");

            return this;
        }

        public Criteria andPropertyIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyIdLessThanOrEqualTo(long value) {
            return andPropertyIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andPropertyIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelActionDAO.PropertyId + " <=", value,
                "propertyId");

            return this;
        }

        public Criteria andPropertyIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyIdIn(long[] values) {
            if (values.length == 1) {
                return andPropertyIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyId + " in", values,
                    "propertyId");

                return this;
            }
        }

        public Criteria andPropertyIdNotIn(long[] values) {
            if (values.length == 1) {
                return andPropertyIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyId + " not in",
                    values, "propertyId");

                return this;
            }
        }

        public Criteria andPropertyIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andPropertyIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.PropertyId + " in", values,
                    "propertyId");

                return this;
            }
        }

        public Criteria andPropertyIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andPropertyIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.PropertyId + " not in",
                    values, "propertyId");

                return this;
            }
        }

        public Criteria andPropertyIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andPropertyIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyId + " in",
                    Arrays.asList(values), "propertyId");

                return this;
            }
        }

        public Criteria andPropertyIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andPropertyIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyId + " not in",
                    Arrays.asList(values), "propertyId");

                return this;
            }
        }

        public Criteria andPropertyIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyId + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyIdBetween(long value1, long value2) {
            addCriterion(IProductModelActionDAO.PropertyId + " between",
                value1, value2, "propertyId");

            return this;
        }

        public Criteria andPropertyIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelActionDAO.PropertyId + " between",
                value1, value2, "propertyId");

            return this;
        }

        public Criteria andPropertyIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelActionDAO.PropertyId + " not between",
                value1, value2, "propertyId");

            return this;
        }

        public Criteria andPropertyIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelActionDAO.PropertyId + " not between",
                value1, value2, "propertyId");

            return this;
        }

        public Criteria andActionIsNull() {
            addCriterion(IProductModelActionDAO.Action + " is null");

            return this;
        }

        public Criteria andActionIsNotNull() {
            addCriterion(IProductModelActionDAO.Action + " is not null");

            return this;
        }

        public Criteria andActionIsNotEmpty() {
            addCriterion(IProductModelActionDAO.Action + " is not null AND " +
                IProductModelActionDAO.Action + " <> ''");

            return this;
        }

        public Criteria andActionIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.Action + " is null OR " +
                IProductModelActionDAO.Action + " = '')");

            return this;
        }

        public Criteria andActionEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Action + " = ", value, "action");

            return this;
        }

        public Criteria andActionEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Action);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActionEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Action + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andActionNotEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Action + " <>", value, "action");

            return this;
        }

        public Criteria andActionNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelActionDAO.Action + " is null OR " +
                IProductModelActionDAO.Action + " <>", value, "action");

            return this;
        }

        public Criteria andActionNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Action);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActionNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Action + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andActionGreaterThan(String value) {
            addCriterion(IProductModelActionDAO.Action + " >", value, "action");

            return this;
        }

        public Criteria andActionGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Action);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActionGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Action + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andActionGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Action + " >=", value, "action");

            return this;
        }

        public Criteria andActionGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Action);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActionGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Action + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andActionLessThan(String value) {
            addCriterion(IProductModelActionDAO.Action + " <", value, "action");

            return this;
        }

        public Criteria andActionLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Action);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActionLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Action + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andActionLessThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Action + " <=", value, "action");

            return this;
        }

        public Criteria andActionLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Action);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andActionLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Action + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andActionLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.Action + " like",
                buffer.toString(), "action");

            return this;
        }

        public Criteria andActionNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.Action + " not like",
                buffer.toString(), "action");

            return this;
        }

        public Criteria andActionIn(List<String> values) {
            if (values.size() == 1) {
                return andActionEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Action + " in", values,
                    "action");

                return this;
            }
        }

        public Criteria andActionNotIn(List<String> values) {
            if (values.size() == 1) {
                return andActionNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Action + " not in", values,
                    "action");

                return this;
            }
        }

        public Criteria andActionIn(String[] values) {
            if (values.length == 1) {
                return andActionEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Action + " in",
                    Arrays.asList(values), "action");

                return this;
            }
        }

        public Criteria andActionNotIn(String[] values) {
            if (values.length == 1) {
                return andActionNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Action + " not in",
                    Arrays.asList(values), "action");

                return this;
            }
        }

        public Criteria andActionIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Action + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andActionNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Action + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andActionBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.Action + " between", value1,
                value2, "action");

            return this;
        }

        public Criteria andActionNotBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.Action + " not between",
                value1, value2, "action");

            return this;
        }

        public Criteria andOperationIsNull() {
            addCriterion(IProductModelActionDAO.Operation + " is null");

            return this;
        }

        public Criteria andOperationIsNotNull() {
            addCriterion(IProductModelActionDAO.Operation + " is not null");

            return this;
        }

        public Criteria andOperationIsNotEmpty() {
            addCriterion(IProductModelActionDAO.Operation +
                " is not null AND " + IProductModelActionDAO.Operation +
                " <> ''");

            return this;
        }

        public Criteria andOperationIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.Operation +
                " is null OR " + IProductModelActionDAO.Operation + " = '')");

            return this;
        }

        public Criteria andOperationEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Operation + " = ", value,
                "operation");

            return this;
        }

        public Criteria andOperationEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Operation);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperationEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Operation + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperationNotEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Operation + " <>", value,
                "operation");

            return this;
        }

        public Criteria andOperationNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelActionDAO.Operation + " is null OR " +
                IProductModelActionDAO.Operation + " <>", value, "operation");

            return this;
        }

        public Criteria andOperationNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Operation);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperationNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Operation + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperationGreaterThan(String value) {
            addCriterion(IProductModelActionDAO.Operation + " >", value,
                "operation");

            return this;
        }

        public Criteria andOperationGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Operation);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperationGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Operation + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperationGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Operation + " >=", value,
                "operation");

            return this;
        }

        public Criteria andOperationGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Operation);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperationGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Operation + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperationLessThan(String value) {
            addCriterion(IProductModelActionDAO.Operation + " <", value,
                "operation");

            return this;
        }

        public Criteria andOperationLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Operation);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperationLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Operation + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperationLessThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Operation + " <=", value,
                "operation");

            return this;
        }

        public Criteria andOperationLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Operation);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andOperationLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Operation + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperationLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.Operation + " like",
                buffer.toString(), "operation");

            return this;
        }

        public Criteria andOperationNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.Operation + " not like",
                buffer.toString(), "operation");

            return this;
        }

        public Criteria andOperationIn(List<String> values) {
            if (values.size() == 1) {
                return andOperationEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Operation + " in", values,
                    "operation");

                return this;
            }
        }

        public Criteria andOperationNotIn(List<String> values) {
            if (values.size() == 1) {
                return andOperationNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Operation + " not in",
                    values, "operation");

                return this;
            }
        }

        public Criteria andOperationIn(String[] values) {
            if (values.length == 1) {
                return andOperationEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Operation + " in",
                    Arrays.asList(values), "operation");

                return this;
            }
        }

        public Criteria andOperationNotIn(String[] values) {
            if (values.length == 1) {
                return andOperationNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Operation + " not in",
                    Arrays.asList(values), "operation");

                return this;
            }
        }

        public Criteria andOperationIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Operation + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperationNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Operation + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andOperationBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.Operation + " between", value1,
                value2, "operation");

            return this;
        }

        public Criteria andOperationNotBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.Operation + " not between",
                value1, value2, "operation");

            return this;
        }

        public Criteria andPropertyValueIsNull() {
            addCriterion(IProductModelActionDAO.PropertyValue + " is null");

            return this;
        }

        public Criteria andPropertyValueIsNotNull() {
            addCriterion(IProductModelActionDAO.PropertyValue + " is not null");

            return this;
        }

        public Criteria andPropertyValueIsNotEmpty() {
            addCriterion(IProductModelActionDAO.PropertyValue +
                " is not null AND " + IProductModelActionDAO.PropertyValue +
                " <> ''");

            return this;
        }

        public Criteria andPropertyValueIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.PropertyValue +
                " is null OR " + IProductModelActionDAO.PropertyValue +
                " = '')");

            return this;
        }

        public Criteria andPropertyValueEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyValue + " = ", value,
                "propertyValue");

            return this;
        }

        public Criteria andPropertyValueEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyValue);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyValueEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyValue + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyValueNotEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyValue + " <>", value,
                "propertyValue");

            return this;
        }

        public Criteria andPropertyValueNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelActionDAO.PropertyValue + " is null OR " +
                IProductModelActionDAO.PropertyValue + " <>", value,
                "propertyValue");

            return this;
        }

        public Criteria andPropertyValueNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyValue);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyValueNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyValue + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyValueGreaterThan(String value) {
            addCriterion(IProductModelActionDAO.PropertyValue + " >", value,
                "propertyValue");

            return this;
        }

        public Criteria andPropertyValueGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyValue);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyValueGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyValue + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyValueGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyValue + " >=", value,
                "propertyValue");

            return this;
        }

        public Criteria andPropertyValueGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyValue);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyValueGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyValue + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyValueLessThan(String value) {
            addCriterion(IProductModelActionDAO.PropertyValue + " <", value,
                "propertyValue");

            return this;
        }

        public Criteria andPropertyValueLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyValue);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyValueLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyValue + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyValueLessThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyValue + " <=", value,
                "propertyValue");

            return this;
        }

        public Criteria andPropertyValueLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyValue);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyValueLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyValue + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyValueLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.PropertyValue + " like",
                buffer.toString(), "propertyValue");

            return this;
        }

        public Criteria andPropertyValueNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.PropertyValue + " not like",
                buffer.toString(), "propertyValue");

            return this;
        }

        public Criteria andPropertyValueIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyValueEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.PropertyValue + " in",
                    values, "propertyValue");

                return this;
            }
        }

        public Criteria andPropertyValueNotIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyValueNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.PropertyValue + " not in",
                    values, "propertyValue");

                return this;
            }
        }

        public Criteria andPropertyValueIn(String[] values) {
            if (values.length == 1) {
                return andPropertyValueEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyValue + " in",
                    Arrays.asList(values), "propertyValue");

                return this;
            }
        }

        public Criteria andPropertyValueNotIn(String[] values) {
            if (values.length == 1) {
                return andPropertyValueNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyValue + " not in",
                    Arrays.asList(values), "propertyValue");

                return this;
            }
        }

        public Criteria andPropertyValueIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyValue + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyValueNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyValue + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyValueBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.PropertyValue + " between",
                value1, value2, "propertyValue");

            return this;
        }

        public Criteria andPropertyValueNotBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.PropertyValue + " not between",
                value1, value2, "propertyValue");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductModelActionDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductModelActionDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductModelActionDAO.Status + " is not null AND " +
                IProductModelActionDAO.Status + " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.Status + " is null OR " +
                IProductModelActionDAO.Status + " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Status + " = ", value, "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Status + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelActionDAO.Status + " is null OR " +
                IProductModelActionDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Status + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductModelActionDAO.Status + " >", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Status + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Status + " >=", value, "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Status + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductModelActionDAO.Status + " <", value, "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Status + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Status + " <=", value, "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Status + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Status + " in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Status + " not in", values,
                    "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Status + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.Status + " between", value1,
                value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductModelActionDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductModelActionDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductModelActionDAO.Remarks + " is not null AND " +
                IProductModelActionDAO.Remarks + " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.Remarks + " is null OR " +
                IProductModelActionDAO.Remarks + " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Remarks + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelActionDAO.Remarks + " is null OR " +
                IProductModelActionDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Remarks + " <> ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductModelActionDAO.Remarks + " >", value, "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Remarks + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Remarks + " >= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductModelActionDAO.Remarks + " <", value, "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Remarks + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Remarks + " <= ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Remarks + " in", values,
                    "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Remarks + " in ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.Remarks + " between", value1,
                value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andPropertyNameIsNull() {
            addCriterion(IProductModelActionDAO.PropertyName + " is null");

            return this;
        }

        public Criteria andPropertyNameIsNotNull() {
            addCriterion(IProductModelActionDAO.PropertyName + " is not null");

            return this;
        }

        public Criteria andPropertyNameIsNotEmpty() {
            addCriterion(IProductModelActionDAO.PropertyName +
                " is not null AND " + IProductModelActionDAO.PropertyName +
                " <> ''");

            return this;
        }

        public Criteria andPropertyNameIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.PropertyName +
                " is null OR " + IProductModelActionDAO.PropertyName +
                " = '')");

            return this;
        }

        public Criteria andPropertyNameEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyName + " = ", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameNotEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyName + " <>", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelActionDAO.PropertyName + " is null OR " +
                IProductModelActionDAO.PropertyName + " <>", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameGreaterThan(String value) {
            addCriterion(IProductModelActionDAO.PropertyName + " >", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyName + " >=", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameLessThan(String value) {
            addCriterion(IProductModelActionDAO.PropertyName + " <", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyName + " <=", value,
                "propertyName");

            return this;
        }

        public Criteria andPropertyNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.PropertyName + " like",
                buffer.toString(), "propertyName");

            return this;
        }

        public Criteria andPropertyNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.PropertyName + " not like",
                buffer.toString(), "propertyName");

            return this;
        }

        public Criteria andPropertyNameIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.PropertyName + " in",
                    values, "propertyName");

                return this;
            }
        }

        public Criteria andPropertyNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.PropertyName + " not in",
                    values, "propertyName");

                return this;
            }
        }

        public Criteria andPropertyNameIn(String[] values) {
            if (values.length == 1) {
                return andPropertyNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyName + " in",
                    Arrays.asList(values), "propertyName");

                return this;
            }
        }

        public Criteria andPropertyNameNotIn(String[] values) {
            if (values.length == 1) {
                return andPropertyNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyName + " not in",
                    Arrays.asList(values), "propertyName");

                return this;
            }
        }

        public Criteria andPropertyNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyNameBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.PropertyName + " between",
                value1, value2, "propertyName");

            return this;
        }

        public Criteria andPropertyNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.PropertyName + " not between",
                value1, value2, "propertyName");

            return this;
        }

        public Criteria andPropertyDataTypeIsNull() {
            addCriterion(IProductModelActionDAO.PropertyDataType + " is null");

            return this;
        }

        public Criteria andPropertyDataTypeIsNotNull() {
            addCriterion(IProductModelActionDAO.PropertyDataType +
                " is not null");

            return this;
        }

        public Criteria andPropertyDataTypeIsNotEmpty() {
            addCriterion(IProductModelActionDAO.PropertyDataType +
                " is not null AND " + IProductModelActionDAO.PropertyDataType +
                " <> ''");

            return this;
        }

        public Criteria andPropertyDataTypeIsEmpty() {
            addCriterion("(" + IProductModelActionDAO.PropertyDataType +
                " is null OR " + IProductModelActionDAO.PropertyDataType +
                " = '')");

            return this;
        }

        public Criteria andPropertyDataTypeEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " = ",
                value, "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyDataType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyDataTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyDataTypeNotEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " <>",
                value, "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelActionDAO.PropertyDataType +
                " is null OR " + IProductModelActionDAO.PropertyDataType +
                " <>", value, "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyDataType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyDataTypeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyDataTypeGreaterThan(String value) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " >", value,
                "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyDataType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyDataTypeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyDataTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " >=",
                value, "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyDataType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyDataTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyDataTypeLessThan(String value) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " <", value,
                "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyDataType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyDataTypeLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyDataTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " <=",
                value, "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelActionDAO.PropertyDataType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andPropertyDataTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyDataTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.PropertyDataType + " like",
                buffer.toString(), "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelActionDAO.PropertyDataType + " not like",
                buffer.toString(), "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyDataTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.PropertyDataType + " in",
                    values, "propertyDataType");

                return this;
            }
        }

        public Criteria andPropertyDataTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andPropertyDataTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelActionDAO.PropertyDataType +
                    " not in", values, "propertyDataType");

                return this;
            }
        }

        public Criteria andPropertyDataTypeIn(String[] values) {
            if (values.length == 1) {
                return andPropertyDataTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyDataType + " in",
                    Arrays.asList(values), "propertyDataType");

                return this;
            }
        }

        public Criteria andPropertyDataTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andPropertyDataTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelActionDAO.PropertyDataType +
                    " not in", Arrays.asList(values), "propertyDataType");

                return this;
            }
        }

        public Criteria andPropertyDataTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyDataTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andPropertyDataTypeBetween(String value1, String value2) {
            addCriterion(IProductModelActionDAO.PropertyDataType + " between",
                value1, value2, "propertyDataType");

            return this;
        }

        public Criteria andPropertyDataTypeNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelActionDAO.PropertyDataType +
                " not between", value1, value2, "propertyDataType");

            return this;
        }
    }
}
